<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 判断一个数是不是素数。(除了1和它本身以外不再有其他的除数整除。)

    // 素数: 除了1和它本身以外不再有其他的除数整除。  2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 

    // 7 =>  1 2 3 4 5 6 7 => 除了1和它本身以外  2 3 4 5 6  => 素数/质数
    // 9 =>  1 2 3 4 5 6 7 8 9 =>  除了1和它本身以外  2 3 4 5 6 7 8  => 3(合数=> 非素数)


    // var num = prompt("请输入一个1-100数");

    // var num = 9;
    // console.log(num);
    
    // 除了1和它本身以外是否存在其他数能否整除num 
    //   不存在 => 素数
    //   存在 => 合数

    // 此写法不行 =>  此写法是双分支,必须走其中一个 => 每次判断要不就是素数/合数
    // for (var i = 2; i < num; i++) { //  2 3 4 5 6 7 8
    //     if(num % i == 0){  // 存在
    //         document.write(num+"能被"+i+"整除,是合数<br>");
    //     }else{
    //         document.write(num+"是素数<br>");
    //     }
    // }

    // 假设法: => 
    // (1) 常用于处理 一个范围中是否存在满足条件的值 => 假设不存在,找到一个既存在(推翻假设)


    // 学生A说:"我笔试的分数是咱们班最高的!"  => 班级中是否存在比同学A分数还要的高的人?   => 假设不存在 flag=false(记录状态), 如果存在学生比学生A分数还要高, 推翻假设 (flag = true 存在) !!!
    // 最终看 flag => false (假设没有被推翻 => 设置依旧成立) , flag = true (假设被推翻了)  


    // var num = 9;
    var num = prompt("请输入一个1-100数");
    console.log(num);

    var flag = false; // 假设除了1和它本身以外不存在其他数能否整除num

    for (var i = 2; i < num; i++) { // 除了1和它本身以外 =>  2 .... num-1
        if(num % i == 0){  // 如果存在能整除num的数
           flag = true; // 推翻假设
           break;  // 后面就没有必要看了 此时i 就是能整除num的数
        }
    }

    // console.log(flag);
    if(flag==true){
        document.write(num+"不是素数,存在能整除num的数:" + i)
    }else{
        document.write(num + "是素数");
    }   



    // 1-100中是否存在 能同时整除 2 5 7 的数?


</script>

</html>